prompt 易惠多点结算住院接口HIS内部确认 create or replace procedure SP_ZY_DDJSJKQR( PDDLSH0 in varchar2 ,--输出:订单流水号 PJKLXBH in number ,--输入:接口编码 PJKLX00 in varchar2 default 'DD' ,--输入:DD:多点结算 YD:移动结算 YB:医保结算 PBRID00 in number ,--输入:BRID00 PZYGHID in number ,--输入:挂号ID或住院ID PCARDNO in varchar2 ,--输入:IC卡号或住院号 PMZZYBZ in varchar2 default '0' ,--输入:门诊住院标志 0:门诊 1:住院 PCZY000 in number ,--输入:操作员编码 PCZYXM0 in varchar2 ,--输入:操作员姓名 PCZYKS0 in number ,--输入:操作员科室 PKSRQ00 in varchar2 default '' ,--输入:开始日期 PJSRQ00 in varchar2 default '' ,--输入:结束日期 PJZDH00 in number default 0 ,--输入:结账单号 PYBGHH0 in varchar2 default '' ,--输入:医保挂号号或医保住院号 PYBDJH0 in varchar2 default '' ,--输入:医保单据号 PCSNBID in varchar2 default '' ,--输入:参数内部ID PBYRC00 in varchar2 default '' ,--输入:备用入参 PCOMMIT in varchar2 default 'N' ,--输入:是否提交事务 Y:提交 N:不提交 PZXZT00 out number ,--输出:执行状态 0:失败 1:成功 PERRMSG out varchar2 --输出:错误信息 ) as -- MODIFICATION HISTORY -- Person Date Comments --zhangyc 2019.03.25 created by ZYSF-20190326-001 --zhangyc 2019.04.15 增加修改CYRQ00、CYSJ00、CYCZY0、CYYGXM by ZYSF-20190416-001 --zhangyc 2019.04.16 增加读卡功能 by ZYSF-20190418-002 --zhangyc 2019.04.19 增加获取姓名和性别 by ZYSF-20190419-002 --zhangyc 2023.07.12 出院登记增加清除ZY_BRZHXX相关信息 ----------------------------------------------------------- LS_DDLSH0 ZY_YBJK00.DDLSH0%type;--订单流水号 LS_JKLXBM ZY_YBJK00.JKLXBM%type;--接口类型编码 LS_CZRQ00 ZY_YBJK00.CZRQ00%type;--操作日期 LS_CZSJ00 ZY_YBJK00.CZSJ00%type;--操作时间 LS_CZY000 ZY_YBJK00.CZY000%type;--操作员 LS_CZYXM0 ZY_YBJK00.CZYXM0%type;--操作员姓名 LS_CZYKS0 ZY_YBJK00.CZYKS0%type;--操作员科室 LS_BRID00 ZY_YBJK00.BRID00%type;--BRID00 LS_ZYID00 ZY_YBJK00.ZYID00%type;--住院ID LS_ZYH000 ZY_YBJK00.ZYH000%type;--住院号 LS_FBBH00 BM_BRXXB0.FBBH00%type;--病人费别 LS_CARDNO ZY_YBFSJD.JKFHZ0%type;--接口返回值(医保卡号) LS_ID0000 ZY_YBFSJD.JKFHZ0%type;--接口返回值(医保ID) LS_XMING0 ZY_YBFSJD.JKFHZ0%type;--接口返回值(姓名) LS_JKFHZ0 ZY_YBFSJD.JKFHZ0%type;--接口返回值 LS_ZYLSH0 ZY_YBFSZX.JKFHZ0%type; begin --接口定义 /* 20011:门诊刷卡 20012:门诊挂号 20013:门诊挂号冲销 20014:门诊收费 20015:门诊收费冲销 20021:住院刷卡 20022:入院登记 20023:入院登记冲销 20024:住院预结算 20025:住院收费 20026:住院收费冲销 20027:出院登记 20028:出院登记冲销 20001:门诊交易查询 20002:门诊收费明细查询 20003:住院交易查询 20004:住院收费明细查询 */ PZXZT00:=0; --执行状态 0:失败 1:成功 LS_CZRQ00:=to_char(sysdate,'YYYYMMDD'); --操作日期 LS_CZSJ00:=to_char(sysdate,'HH24:MI:SS'); --操作时间 LS_DDLSH0:=PDDLSH0; LS_BRID00:=nvl(PBRID00,0);--BRID00 LS_ZYID00:=nvl(PZYGHID,0);--住院id LS_ZYH000:=PCARDNO;--住院号 LS_JKLXBM:=PJKLXBH;--接口类型编码 LS_CZY000:=PCZY000;--操作员 LS_CZYXM0:=PCZYXM0;--操作员姓名 LS_CZYKS0:=PCZYKS0;--操作员科室 begin select FBBH00 into LS_FBBH00 from BM_BRXXB0 where BRID00 = LS_BRID00; exception when others then LS_FBBH00:=1; end; --20021:住院刷卡--begin--- if LS_JKLXBM=20021 then --Readcard_Info:读卡_设备卡信息 hisExtra:接口扩展参数 Readcard_StatusMsg:读卡_参保信息 --医保卡号 begin select trim(JKFHZ0) into LS_CARDNO from ZY_YBFSJD where DDLSH0 = PDDLSH0 and JKFSBM='pCardno' and JDBM00='Readcard_Info'; exception when others then LS_CARDNO:=''; end; if LS_CARDNO is not null then update ZY_YBFSJD set JKFHZ0=LS_CARDNO where DDLSH0 = PDDLSH0 and JKFSBM='cardno' and JDBM00='Readcard_StatusMsg' and JKFHZ0 is null; end if; --医保ID begin select trim(JKFHZ0) into LS_ID0000 from ZY_YBFSJD where DDLSH0 = PDDLSH0 and JKFSBM='pId' and JDBM00='Readcard_Info'; exception when others then LS_ID0000:=''; end; if LS_CARDNO is not null then update ZY_YBFSJD set JKFHZ0=LS_ID0000 where DDLSH0 = PDDLSH0 and JKFSBM='id0000' and JDBM00='Readcard_StatusMsg' and JKFHZ0 is null; end if; --姓名 begin select trim(JKFHZ0) into LS_XMING0 from ZY_YBFSJD where DDLSH0 = PDDLSH0 and JKFSBM='pName' and JDBM00='Readcard_Info'; exception when others then LS_ID0000:=''; end; if LS_XMING0 is not null then update ZY_YBFSJD set JKFHZ0=LS_XMING0 where DDLSH0 = PDDLSH0 and JKFSBM='xming0' and JDBM00='Readcard_StatusMsg' and JKFHZ0 is null; end if; --读卡_性别(1:男 2:女) begin select trim(JKFHZ0) into LS_JKFHZ0 from ZY_YBFSJD where DDLSH0 = PDDLSH0 and JKFSBM='pSex' and JDBM00='Readcard_Info'; exception when others then LS_ID0000:=''; end; if LS_JKFHZ0 is not null then if LS_JKFHZ0='1' then update ZY_YBFSJD set JKFHZ0='男' where DDLSH0 = PDDLSH0 and JKFSBM='xbmc00' and JDBM00='Readcard_StatusMsg' and JKFHZ0 is null; else update ZY_YBFSJD set JKFHZ0='女' where DDLSH0 = PDDLSH0 and JKFSBM='xbmc00' and JDBM00='Readcard_StatusMsg' and JKFHZ0 is null; end if; end if; --20021:住院刷卡--end--- --20022:入院登记--begin--- elsif LS_JKLXBM=20022 then --医保ID begin select JKFHZ0 into LS_ZYLSH0 from ZY_YBFSZX where DDLSH0 = PDDLSH0 and JKFSBM='zylsh0'; exception when others then LS_ZYLSH0:=''; end; if LS_ZYLSH0 is null then LS_ZYLSH0:='0'; end if; update ZY_BRXXB0 set YBZYH0=substrb(LS_ZYLSH0,1,30) where ZYID00=PZYGHID; --20027出院登记---begin---- elsif LS_JKLXBM=20027 then --修改结账表 update ZY_JZB000 set YBCYRQ=LS_CZRQ00,YBCYSJ=LS_CZSJ00 where YBCYRQ='20991231' and ZYID00=LS_ZYID00; --修改住院病人信息表中的在院状态 update ZY_BRXXB0 set CYRQ00=LS_CZRQ00, CYSJ00=LS_CZSJ00, CYCZY0=PCZY000, CYYGXM=PCZYXM0, BRZT00 ='4', --'4':正常出院病人,'5':逃跑病人,'6':医保年度结算病人 CYJSRQ = LS_CZRQ00, --出院结算日期 CYJSSJ = LS_CZSJ00 --出院结算时间 where ZYID00 = LS_ZYID00; --修改基本病人信息表中的在院状态 update BM_BRXXB0 set ZYZT00 = '3' --病人在院状态,'0':门诊,'1':住院,'2':其它,'3':出院 where BRID00 = LS_BRID00; --修改担保金额表 update ZY_BRDB00 set SFYX00 = '0' where BRID00 = LS_BRID00 and SFYX00 ='Y'; --2023.07.12 参考过程:SP_ZY_YBCYDJ 清除账户相关信息 Update ZY_BRZHXX set SFDJ00 = '2', --是否冻结;'0':正常,'1':冻结,'2':停用 THRQ00 = to_char(sysdate,'YYYYMMDD'), --停户日期 THSJ00 = to_char(sysdate,'HH24:MI:SS'), --停户时间 THCZY0 = LS_CZY000, --停户操作员 THCZYM = LS_CZYXM0, --停户操作员姓名 XJYE00 = 0 , --病人现金余额 ZZYE00 = 0 , --病人转帐余额 YJSJE0 = 0 , --已结算金额 WJSJE0 = 0 , --未结算金额 ZYE000 = 0 , --帐户实际总余额(可能会有负的金额出现) YKZYE0 = 0 , --预扣后的总余额 YXQFJE = 0 --允许病人的欠费的最大金额(或称为担保金额) where BRID00 = LS_BRID00 and JFLBID = 2; end if; --20027出院登记---end---- PZXZT00:=1;--输出:执行状态 0:失败 1:成功 exception when no_data_found then PZXZT00:=0; PERRMSG:=substrb('执行多点结算院内确认过程SP_ZY_DDJSJKQR错误!'||sqlerrm,1,200); when others then PZXZT00:=0; PERRMSG:=substrb('执行多点结算院内确认过程SP_ZY_DDJSJKQR错误!'||sqlerrm,1,200); end; / show error; --%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%